# 赋值与copy

stu_id = [11, 22, 33, 44, 55]

# matedata 尝试
#  源数据与metadata
stu_id_matedata = stu_id
print("stu_id:", stu_id, '\n', 'stu_id_matedata:', stu_id_matedata)
# '\n'为换行号
#输出结果看出为一模一样的输出结果

# 实验1 赋值 用pop来检验matedata的效果
# stu_id.pop(1)
# print("stu_id:", stu_id, '\n', 'stu_id_matedata:', stu_id_matedata)
# 输出结果看出两者依旧一模一样，看得出matedata不能起到备份作用，只是刻板地复制）

# 实验2 copy 依旧使用pop来检验，看看mate与copy的区别
stu_id_matedata = stu_id.copy()
stu_id.pop(1)
print("stu_id:", stu_id, '\n', 'stu_id_matedata:', stu_id_matedata)
# 实验结果看出copy是对源数据的完全复制，不受源数据受处理行为的影响。可以用来备份数据，
# 总结copy是完全的不受影响的真正的复制行为。


# 枚举 索引实验
stu_id1 = [66, 77, 88, 99, 00, 66, 66]
for i in stu_id1:
    # 循环遍历stu_id的所有内容
    if i == 66:
        # 判断如果元素为66的时候,怎么取出索引值呢？
        print(stu_id1.index(66))
        # 缺陷：只能找到第一位0
# enumerate 枚举
pop_values_list = []  # 要删除的值在list里面
for index, item in enumerate(stu_id1):
    # print(index,item)
    if item == 66:
        print(index, item)
        pop_values_list.append(index)
print("我们想要删除pop()的值：", pop_values_list)
# 总结利用枚举的方式来找到值并且输出其所处位置，将其删除，补充了index只能找相同数值里面首个值的位置的不足

